#ifndef __QUEUE_H__
#define __QUEUE_H__

#include "Types.h"

// 定义队列的最大容量
#define QUEUE_MAX_SIZE 64

// 队列结构体定义
typedef struct {
    uint8_t dat[QUEUE_MAX_SIZE];  // 数据缓冲区
    uint8_t front;                 // 队头指针
    uint8_t rear;                  // 队尾指针
    uint8_t count;                 // 队列中元素个数
} Queue;

// 队列操作函数声明
void Queue_Init(Queue *queue);                  // 初始化队列
BOOL Queue_IsEmpty(Queue *queue);               // 判断队列是否为空
BOOL Queue_IsFull(Queue *queue);                // 判断队列是否已满
BOOL Queue_Enqueue(Queue *queue, uint8_t dat); // 入队操作
BOOL Queue_Dequeue(Queue *queue, uint8_t *dat); // 出队操作
uint8_t Queue_GetCount(Queue *queue);           // 获取队列中元素个数

#endif /* __QUEUE_H__ */